/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package lu.med.praxiswahl.wahlumed.model.beans;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * 
 * @author pkendzo
 */
@Table(name = "PRAXIS_PATIENTINEN")
@Entity
public class CustomerTBL implements Serializable {

	private static final long serialVersionUID = 1L;

	public CustomerTBL() {

	}

	@Column(name = "matrikel_nummer")
	@Id
	private String matrikel_nummer;

	private String nachname_1;
	private String nachname_2;
	private String nachname_3;
	private String vorname;
	private String geburtstag;
	private String eltern_name;
	private String arbeitgeber;
	private String arbeitgeberTel;
	private String fax;
	private String telefon;
	private String email;
	private String addresse;
	private String privatGSM;
	private String privatPLZ;
	private String ort;

	private String zusatz_versicherung;

	@Column(columnDefinition = "TEXT")
	private String notizen;

	@Column(columnDefinition = "TEXT")
	private String besonderheiten;

	@Column(columnDefinition = "TEXT")
	private String krankmeldung_feld;

	private String website;
	private String oldAddresse;
	private String versichern_duch;
	private String versichert_auswahl;
	private String geheim_nummer;

	/*
	 * alle Moegliche Sprache werden in einer Spalte geschrieben. Clientparser
	 * kuermert sich um den Rest.
	 */
	private String sprache;

	private String ehemann_nachname_1;
	private String ehemann_nachname_2;
	private String ehemann_nachname_3;
	private String ehemann_vorname;
	private String ehemann_geburtstag;

	// @OneToOne//(cascade={CascadeType.MERGE, CascadeType.PERSIST,
	// CascadeType.REFRESH}, fetch=FetchType.EAGER)
	@ManyToOne
	@JoinColumn(name = "doctor_ID")
	private DoctorsTBL haus_artzID;

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
	private Set<CalendarTBL> appointments = new HashSet<CalendarTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<OrdonanceTBL> ordonances = new HashSet<OrdonanceTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<HonorarTBL> opHonorar = new HashSet<HonorarTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<OPBillsTBL> opBill = new HashSet<OPBillsTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<InternAnalysisTBL> analysis = new HashSet<InternAnalysisTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<ZytologyTBL> zytology = new HashSet<ZytologyTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<BefundeTBL> befunde = new HashSet<BefundeTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<DoctorLettersTBL> docLetter = new HashSet<DoctorLettersTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<LaborbookTBL> labBook = new HashSet<LaborbookTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<GravTestTBL> grav_test = new HashSet<GravTestTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<CtgTBL> ctgItems = new HashSet<CtgTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<EchoTBL> echoItems = new HashSet<EchoTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<VersicherungAntraegeTBL> antraegeItems = new HashSet<VersicherungAntraegeTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<EGravTBL> egravEintraege = new HashSet<EGravTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<FormularTBL> FormularEintraege = new HashSet<FormularTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<ScanTBL> scanEintraege = new HashSet<ScanTBL>();

	@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL)
	private Set<RemindersTBL> remindersItem = new HashSet<RemindersTBL>();

	public Set<ScanTBL> getScanEintraege() {
		return scanEintraege;
	}

	public void setScanEintraege(Set<ScanTBL> scanEintraege) {
		this.scanEintraege = scanEintraege;
	}

	public Set<RemindersTBL> getRemindersItem() {
		return remindersItem;
	}

	public void setRemindersItem(Set<RemindersTBL> remindersItem) {
		this.remindersItem = remindersItem;
	}

	public Set<FormularTBL> getFormularEintraege() {
		return FormularEintraege;
	}

	public void setFormularEintraege(Set<FormularTBL> formularEintraege) {
		FormularEintraege = formularEintraege;
	}

	public Set<EGravTBL> getEgravEintraege() {
		return egravEintraege;
	}

	public void setEgravEintraege(Set<EGravTBL> egravEintraege) {
		this.egravEintraege = egravEintraege;
	}

	public Set<HonorarTBL> getOpHonorar() {
		return opHonorar;
	}

	public void setOpHonorar(Set<HonorarTBL> opHonorar) {
		this.opHonorar = opHonorar;
	}

	public Set<VersicherungAntraegeTBL> getAntraegeItems() {
		return antraegeItems;
	}

	public void setAntraegeItems(Set<VersicherungAntraegeTBL> antraegeItems) {
		this.antraegeItems = antraegeItems;
	}

	public Set<CtgTBL> getCtgItems() {
		return ctgItems;
	}

	public void setCtgItems(Set<CtgTBL> ctgItems) {
		this.ctgItems = ctgItems;
	}

	public Set<EchoTBL> getEchoItems() {
		return echoItems;
	}

	public void setEchoItems(Set<EchoTBL> echoItems) {
		this.echoItems = echoItems;
	}

	public Set<GravTestTBL> getGrav_test() {
		return grav_test;
	}

	public void setGrav_test(Set<GravTestTBL> grav_test) {
		this.grav_test = grav_test;
	}

	public Set<LaborbookTBL> getLabBook() {
		return labBook;
	}

	public void setLabBook(Set<LaborbookTBL> labBook) {
		this.labBook = labBook;
	}

	public static long getSerialVersionUID() {
		return serialVersionUID;
	}

	public Set<DoctorLettersTBL> getDocLetter() {
		return docLetter;
	}

	public void setDocLetter(Set<DoctorLettersTBL> docLetter) {
		this.docLetter = docLetter;
	}

	public Set<BefundeTBL> getBefunde() {
		return befunde;
	}

	public void setBefunde(Set<BefundeTBL> befunde) {
		this.befunde = befunde;
	}

	public Set<ZytologyTBL> getZytology() {
		return zytology;
	}

	public void setZytology(Set<ZytologyTBL> zytology) {
		this.zytology = zytology;
	}

	public Set<InternAnalysisTBL> getAnalysis() {
		return analysis;
	}

	public void setAnalysis(Set<InternAnalysisTBL> analysis) {
		this.analysis = analysis;
	}

	/*
	 * public Set<BillsTBL> getBills() { return bills; }
	 * 
	 * public void setBills(Set<BillsTBL> bills) { this.bills = bills; }
	 */
	public Set<OrdonanceTBL> getOrdonances() {
		return ordonances;
	}

	public void setOrdonances(Set<OrdonanceTBL> ordonances) {
		this.ordonances = ordonances;
	}

	public Set<CalendarTBL> getAppointments() {
		return appointments;
	}

	public void setAppointments(Set<CalendarTBL> appointments) {
		this.appointments = appointments;
	}

	public DoctorsTBL getHaus_artzID() {
		return haus_artzID;
	}

	public void setHaus_artzID(DoctorsTBL haus_artzID) {
		this.haus_artzID = haus_artzID;
	}

	public String getArbeitgeber() {
		return arbeitgeber;
	}

	public void setArbeitgeber(String arbeitgeber) {
		this.arbeitgeber = arbeitgeber;
	}

	public String getArbeitgeberTel() {
		return arbeitgeberTel;
	}

	public void setArbeitgeberTel(String arbeitgeberTel) {
		this.arbeitgeberTel = arbeitgeberTel;
	}

	public String getBesonderheiten() {
		return besonderheiten;
	}

	public void setBesonderheiten(String besonderheiten) {
		this.besonderheiten = besonderheiten;
	}

	public String getEmail() {

		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getFax() {
		return fax;
	}

	public void setFax(String fax) {
		this.fax = fax;
	}

	public String getGeburtstag() {
		return geburtstag;
	}

	public void setGeburtstag(String geburtstag) {
		this.geburtstag = geburtstag;
	}

	public String getMatrikel_nummer() {
		return matrikel_nummer;
	}

	public void setMatrikel_nummer(String matrikel_nummer) {
		this.matrikel_nummer = matrikel_nummer;
	}

	public String getNachname_1() {
		if (nachname_1 == null)
			return "";
		return nachname_1;
	}

	public void setNachname_1(String nachname_1) {
		this.nachname_1 = nachname_1;
	}

	public String getNachname_2() {
		if (nachname_2 == null)
			return "";
		return nachname_2;
	}

	public void setNachname_2(String nachname_2) {
		this.nachname_2 = nachname_2;
	}

	public String getNachname_3() {
		if (nachname_3 == null)
			return "";
		return nachname_3;
	}

	public void setNachname_3(String nachname_3) {
		this.nachname_3 = nachname_3;
	}

	public String getNotizen() {
		return notizen;
	}

	public void setNotizen(String notizen) {
		this.notizen = notizen;
	}

	public String getOrt() {
		return ort;
	}

	public void setOrt(String ort) {
		this.ort = ort;
	}

	public String getPrivatGSM() {
		return privatGSM;
	}

	public void setPrivatGSM(String privatGSM) {
		this.privatGSM = privatGSM;
	}

	public String getPrivatPLZ() {
		return privatPLZ;
	}

	public void setPrivatPLZ(String privatPLZ) {
		this.privatPLZ = privatPLZ;
	}

	public String getAddresse() {
		return addresse;
	}

	public void setAddresse(String addresse) {
		this.addresse = addresse;
	}

	public String getTelefon() {
		return telefon;
	}

	public void setTelefon(String telefon) {
		this.telefon = telefon;
	}

	public String getEltern_name() {
		return eltern_name;
	}

	public void setEltern_name(String vater_name) {
		this.eltern_name = vater_name;
	}

	public String getVorname() {
		if (vorname == null)
			return "";
		return vorname;
	}

	public void setVorname(String vorname) {
		this.vorname = vorname;
	}

	public String getWebsite() {
		return website;
	}

	public void setWebsite(String website) {
		this.website = website;
	}

	public String getOldAddresse() {
		return oldAddresse;
	}

	public void setOldAddresse(String oldAddresse) {
		this.oldAddresse = oldAddresse;
	}

	public String getVersichern_duch() {
		return versichern_duch;
	}

	public void setVersichern_duch(String versichern_duch) {
		this.versichern_duch = versichern_duch;
	}

	public String getGeheim_nummer() {
		return geheim_nummer;
	}

	public void setGeheim_nummer(String geheim_nummer) {
		this.geheim_nummer = geheim_nummer;
	}

	public String getSprache() {
		return sprache;
	}

	public void setSprache(String sprache) {
		this.sprache = sprache;
	}

	public String getEhemann_geburtstag() {
		return ehemann_geburtstag;
	}

	public void setEhemann_geburtstag(String ehemann_geburtstag) {
		this.ehemann_geburtstag = ehemann_geburtstag;
	}

	public String getEhemann_nachname_1() {
		if (ehemann_nachname_1 == null)
			return "";
		return ehemann_nachname_1;
	}

	public void setEhemann_nachname_1(String ehemann_nachname_1) {
		this.ehemann_nachname_1 = ehemann_nachname_1;
	}

	public String getEhemann_nachname_2() {
		if (ehemann_nachname_2 == null)
			return "";
		return ehemann_nachname_2;
	}

	public void setEhemann_nachname_2(String ehemann_nachname_2) {
		this.ehemann_nachname_2 = ehemann_nachname_2;
	}

	public String getEhemann_nachname_3() {
		if (ehemann_nachname_3 == null)
			return "";
		return ehemann_nachname_3;
	}

	public void setEhemann_nachname_3(String ehemann_nachname_3) {
		this.ehemann_nachname_3 = ehemann_nachname_3;
	}

	public String getEhemann_vorname() {
		if (ehemann_vorname == null)
			return "";
		return ehemann_vorname;
	}

	public void setEhemann_vorname(String ehemann_vorname) {
		this.ehemann_vorname = ehemann_vorname;
	}

	public String getVersichert_auswahl() {
		return versichert_auswahl;
	}

	public void setVersichert_auswahl(String versichert_auswahl) {
		this.versichert_auswahl = versichert_auswahl;
	}

	public String getZusatz_versicherung() {
		return zusatz_versicherung;
	}

	public void setZusatz_versicherung(String zusatz_versicherung) {
		this.zusatz_versicherung = zusatz_versicherung;
	}

	public String getKrankmeldung_feld() {
		return krankmeldung_feld;
	}

	public void setKrankmeldung_feld(String krankmeldung_feld) {
		this.krankmeldung_feld = krankmeldung_feld;
	}

	/**
	 * @return the opBill
	 */
	public Set<OPBillsTBL> getOpBill() {
		return opBill;
	}

	/**
	 * @param opBill
	 *            the opBill to set
	 */
	public void setOpBill(Set<OPBillsTBL> opBill) {
		this.opBill = opBill;
	}

}
